home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / GCC 1.37.1r14 / BSD #includes / sys / sys⁄vsio.h < prev    next >
Encoding:
Text File  |  1992-09-04  |  5.6 KB  |  154 lines  |  [TEXT/UNIX]

  1. /*-
  2.  * Copyright (c) 1987 The Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  * 3. All advertising materials mentioning features or use of this software
  14.  *    must display the following acknowledgement:
  15.  *    This product includes software developed by the University of
  16.  *    California, Berkeley and its contributors.
  17.  * 4. Neither the name of the University nor the names of its contributors
  18.  *    may be used to endorse or promote products derived from this software
  19.  *    without specific prior written permission.
  20.  *
  21.  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31.  * SUCH DAMAGE.
  32.  *
  33.  *    @(#)vsio.h    7.4 (Berkeley) 5/9/91
  34.  */
  35.  
  36.  /****************************************************************************
  37.  *                                        *
  38.  *  Copyright (c) 1983, 1984 by                            *
  39.  *  DIGITAL EQUIPMENT CORPORATION, Maynard, Massachusetts.            *
  40.  *  All rights reserved.                            *
  41.  *                                         *
  42.  *  This software is furnished on an as-is basis and may be used and copied *
  43.  *  only with inclusion of the above copyright notice. This software or any *
  44.  *  other copies thereof may be provided or otherwise made available to     *
  45.  *  others only for non-commercial purposes.  No title to or ownership of   *
  46.  *  the software is hereby transferred.                        *
  47.  *                                         *
  48.  *  The information in this software is  subject to change without notice   *
  49.  *  and  should  not  be  construed as  a commitment by DIGITAL EQUIPMENT   *
  50.  *  CORPORATION.                                *
  51.  *                                         *
  52.  *  DIGITAL assumes no responsibility for the use  or  reliability of its   *
  53.  *  software on equipment which is not supplied by DIGITAL.            *
  54.  *                                         *
  55.  *                                        *
  56.  ****************************************************************************/
  57. /* 
  58.  * vsio.h - VS100 I/O command definitions
  59.  * 
  60.  * Author:    Christopher A. Kent
  61.  *        Digital Equipment Corporation
  62.  *        Western Research Lab
  63.  * Date:    Tue Jun 21 1983
  64.  */
  65.  
  66. /* 
  67.  * Possible ioctl calls
  68.  */
  69.  
  70. #define    VSIOINIT    _IO('V', 0)        /* init the device */
  71. #define    VSIOSTART    _IOW('V', 1, int)    /* start microcode */
  72. #define    VSIOABORT    _IO('V', 2)        /* abort a command chain */
  73. #define    VSIOPWRUP    _IO('V', 3)        /* power-up reset */
  74. #define    VSIOGETVER    _IOR('V', 4, int)    /* get rom version */
  75. #define    VSIOSYNC    _IO('V', 6)        /* synch with device */
  76. #define    VSIOBBACTL    _IOW('V', 8, int)    /* control the BBA */
  77. #define    VSIOFIBCTL    _IOW('V', 9, int)    /* lamp on/off */
  78. #define    VSIOFIBRETRY    _IOW('V',10, int)    /* fiber retries */
  79. #define    VSIOGETSTATS    _IOR('V',11, vsStats)    /* get statistics */
  80. #define    VSIOGETIOA    _IOR('V',13, vsIoAddrAddr)/* get ioreg address */
  81. #define    VSIOUSERWAIT    _IO('V', 15)    /* wait for user I/O completion */
  82. #define VSIOWAITGO    _IOW('V', 16, caddr_t)    /* wait then go */
  83.  
  84.  
  85. #define    VSIO_OFF    0        /* option off */
  86. #define    VSIO_ON        1        /* option on */
  87.  
  88. #define    VS_FIB_FINITE    1        /* finite retries */
  89. #define    VS_FIB_INFINITE    2        /* infinite retries */
  90.  
  91. /* 
  92.  * Event queue entries
  93.  */
  94.  
  95. typedef struct    _vs_event{
  96.     u_short    vse_x;        /* x position */
  97.     u_short    vse_y;        /* y position */
  98.     u_short    vse_time;    /* 10 millisecond units (button only) */
  99.     char    vse_type;    /* button or motion? */
  100.     u_char    vse_key;    /* the key (button only) */
  101.     char    vse_direction;    /* which direction (button only) */
  102.     char    vse_device;    /* which device (button only) */
  103. }vsEvent;
  104.  
  105. #define    VSE_BUTTON    0        /* button moved */
  106. #define    VSE_MMOTION    1        /* mouse moved */
  107. #define    VSE_TMOTION    2        /* tablet moved */
  108.  
  109. #define    VSE_KBTUP    0        /* up */
  110. #define    VSE_KBTDOWN    1        /* down */
  111.  
  112. #define    VSE_MOUSE    1        /* mouse */
  113. #define    VSE_DKB        2        /* main keyboard */
  114. #define    VSE_TABLET    3        /* graphics tablet */
  115. #define    VSE_AUX        4        /* auxiliary */
  116. #define    VSE_CONSOLE    5        /* console */
  117.  
  118. typedef struct _vsStats{
  119.     int    errors;            /* count errors */
  120.     int    unsolIntr;        /* count unsolicited interrupts */
  121.     int    overruns;        /* event queue overruns */
  122.     int    flashes;        /* flashes on fiber link */
  123.     int    ignites;        /* times turned on */
  124.     int    douses;            /* times turned off */
  125.     int    linkErrors;        /* link errors */
  126. }vsStats;
  127.  
  128. typedef struct _vs_cursor{
  129.     short x;
  130.     short y;
  131. }vsCursor;
  132.  
  133. typedef struct _vs_box {
  134.     short bottom;
  135.     short right;
  136.     short left;
  137.     short top;
  138. }vsBox;
  139.  
  140. typedef struct _vsIoAddr {
  141.     short     *ioreg;
  142.     short     status;
  143.     caddr_t  obuff;
  144.     int     obufflen;
  145.     int     reloc;
  146.     vsEvent  *ibuff;
  147.     int     iqsize;        /* may assume power of 2 */
  148.     int     ihead;            /* atomic write */
  149.     int     itail;            /* atomic read */
  150.     vsCursor mouse;            /* atomic read/write */
  151.     vsBox     mbox;            /* atomic read/write */
  152. } vsIoAddr;
  153. typedef vsIoAddr *vsIoAddrAddr;
  154.